package fr.musique.servlet;

import java.util.LinkedList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import fr.musique.bean.Album;
import fr.musique.service.AlbumService;
import fr.musique.service.MusiqueService;

@Controller
public class RechercherAlbumServlet extends MultiActionController {

	@Autowired
	protected MusiqueService musiqueR;

	@Autowired
	protected AlbumService albumR;

	// Paramétrage et envoie du formulaire CreerAlbum.jsp
	@RequestMapping("/RechercheAlbum/rechercheAlbum.htm")
	public ModelAndView creerMusique(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		// Redirection
		request.setAttribute("page", "RechercheAlbum");

		return new ModelAndView("Accueil");
	}

	@RequestMapping("/RechercheAlbum/resultat.htm")
	public ModelAndView add(HttpServletRequest request,
			HttpServletResponse response, Album album) throws Exception {

		// On vérifie que les champs existent
		if (album.getTitre() != null) {

			// On vérifie que les champs sont non vides
			if (!album.getTitre().isEmpty()) {

				// Sauvegarde en base

				LinkedList<Album> albumRecherchee = new LinkedList<Album>();
				for (Album alb : albumR.getAlbum(album.getTitre())) {
					albumRecherchee.add(alb);
					System.out.println("TITRE DE LA MUSIQUE RECHERCHEE "
							+ alb.getTitre() + alb.getGroupe());
				}
				request.setAttribute("recherche", albumRecherchee);

				// Mise en session
				HttpSession session = request.getSession(false);

				// Redirection - Traitement OK
				request.setAttribute("page", "AlbumRecherche");
			} else {
				// Redirection - Traitement Fail
				request.setAttribute("page", "AlbumRecherche");
				request.setAttribute("error_recherche_album",
						"Veuillez remplir le champs titre");
			}
		} else {
			// Redirection - Traitement Fail
			request.setAttribute("page", "AlbumRecherche");
			request.setAttribute("error_recherche_album",
					"Veuillez remplir le champs titre");
		}

		return new ModelAndView("Accueil");
	}
}
